package com.fxkj.cloud.drms.application.converter;

import com.fxkj.cloud.drms.application.model.dto.CommandSettingHistoryCreateDTO;
import com.fxkj.cloud.drms.application.model.dto.CommandSettingHistoryUpdateDTO;
import com.fxkj.cloud.drms.application.model.vo.CommandSettingHistoryModelView;
import com.fxkj.cloud.drms.application.model.vo.LatestCommandSettingHistoryKvModelView;
import com.fxkj.cloud.drms.domain.commandSettingHistory.CommandSettingHistoryDomain;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;

import java.util.List;
import java.util.UUID;

/**
 * <p>description: </p>
 *
 * @author ww
 * @date 2025-03-25 11:06:52
 */
@Mapper(componentModel = "spring")
public interface CommandSettingHistoryApplicationConverter {

    CommandSettingHistoryModelView toView(CommandSettingHistoryDomain commandSettingHistoryDomain);

    List<CommandSettingHistoryModelView> toView(List<CommandSettingHistoryDomain> commandSettingHistoryDomain);

    List<LatestCommandSettingHistoryKvModelView> toLatestView(List<CommandSettingHistoryDomain> commandSettingHistoryDomain);

    CommandSettingHistoryDomain toDomain(CommandSettingHistoryModelView commandSettingHistoryModelView);

    CommandSettingHistoryDomain toDomain(CommandSettingHistoryCreateDTO commandSettingHistoryCreateDTO, UUID organizationId);

    void update(@MappingTarget CommandSettingHistoryDomain domain, CommandSettingHistoryUpdateDTO commandSettingHistoryUpdateDTO);

}
